import java.io.File;
import java.io.IOException;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 86185
 * Date: 2023-06-14
 * Time: 14:27
 */
public class Test2 {
    /**
     * 创建和删除功能
     * public boolean createNewFIle() : 创建文件,若文件存在,则不创建,返回false
     * public boolean mkdir() : 创建文件目录.如果此文件目录存在,就不创建. 如果此文件目录的上层目录不存在,也不创建
     * public boolean mkdirs() : 创建文件目录, 如果上层文件目录不存在, 一并创建
     * public boolean delete() : 删除文件或文件夹
     * 删除注意:
     * 1. Java中的删除不走回收站
     * 2. 删除一个文件目录,请注意该文件目录内不能包含文件或者文件夹
     * @param args
     */
    public static void main6(String[] args) throws IOException {
        //文件的删除和创建
        File file = new File("d:/io/hello.txt");
        if (!file.exists()) {
            boolean i = file.createNewFile();
            if (i) {
                System.out.println("succeed");
            }
        } else {
            System.out.println("文件已存在");
            boolean n = file.delete();
            if(n) {
                System.out.println("文件删除成功");
            } else {
                System.out.println("删除失败");
            }
        }
    }

    public static void main7(String[] args) {
        //文件夹的删除和创建
        //d:/io存在, io2不存在
        File file = new File("d:/io/io2");
        System.out.println(file.mkdir());
        File file2 = new File("d:/io/io3");
        System.out.println(file2.mkdirs());
    }

    public static void main8(String[] args) {
        //d:/io存在, io2不存在
        File file = new File("d:/io/io2/io2.1");
        System.out.println(file.mkdir());//true
        File file2 = new File("d:/io/io3/io3.1");
        System.out.println(file2.mkdirs());//false
    }

    public static void main9(String[] args) {
        File file2 = new File("d:/io/io3/io3.1");
        System.out.println(file2.delete());
    }
    /**
     * 判断功能的方法
     * public boolean exists() : 此file表示的文件或目录是否真实存在
     * public boolean isDirectory() : 此file表示的是否是目录
     * public boolean isFile() : 此file表示的是否为文件
     * public boolean canRead() : 判断是否可读
     * public boolean canWrite() : 判断是否可写
     * public boolean isHidden() : 判断是否可隐藏
     * @param args
     */
    public static void main5(String[] args) {
        File file = new File("D:\\IO\\io1\\test.txt");
        System.out.println(file.exists());
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
        System.out.println(file.canRead());
        System.out.println(file.canWrite());
        System.out.println(file.isHidden());
        System.out.println();
        File file2 = new File("D:\\IO\\io1");
        System.out.println(file2.exists());
        System.out.println(file2.isDirectory());
        System.out.println(file2.isFile());
        System.out.println(file2.canRead());
        System.out.println(file2.canWrite());
        System.out.println(file2.isHidden());
        System.out.println();
        File file3 = new File("D:\\IO\\io2");
        System.out.println(file3.exists());
        System.out.println(file3.isDirectory());
        System.out.println(file3.isFile());
        System.out.println(file3.canRead());
        System.out.println(file3.canWrite());
        System.out.println(file3.isHidden());

    }
    /**
     * File类的重命名功能
     * public boolean renameTo(File dest)
     *
     * 要想此方法返回true,要求:
     * file存在,file1必须不存在,且file1所在的文件目录必须存在
     * @param args
     */
    public static void main4(String[] args) {

        File file = new File("test.txt");
        File file1 = new File("D:\\IO\\io1\\test.txt");//false

        File file2 = new File("D:\\IO\\io1\\abc.txt");//true

        boolean rename = file.renameTo(file2);
        System.out.println(rename);
    }
    /**
     * 列出目录的下一级
     * public String[] list() : 返回一个String数组, 表示该File目录中的所有子文件或目录
     * public File[] listFiles() : 返回一个File数组, 表示给File目录中所有子文件或目录
     * @param args
     */
    public static void main3(String[] args) {
        //public String[] list()
        File file = new File("D:\\JAVA\\java\\j230614");
        String[] fillArr = file.list();
//        for (String s :
//                fillArr) {
//            System.out.println(s);
//        }

        //public File[] listFiles()
        File[] files = file.listFiles();
        for (File f :
                files) {
            System.out.println(f.getName());
            System.out.println(f);
        }
    }
    public static void main2(String[] args) {
        File file = new File("D:\\IO\\io1\\test.txt");
        System.out.println(file.getName());
        System.out.println(file.getPath());
        System.out.println(file.getAbsolutePath());
        System.out.println(file.getAbsoluteFile());
        System.out.println(file.getParent());
        System.out.println(file.getAbsoluteFile().getParent());
        System.out.println(file.length());
        System.out.println(file.lastModified());
    }
    public static void main1(String[] args) {
        File file = new File("test.txt");
        System.out.println(file.getName());
        System.out.println(file.getPath());
        System.out.println(file.getAbsolutePath());
        System.out.println(file.getAbsoluteFile());
        System.out.println(file.getParent());
        System.out.println(file.getAbsoluteFile().getParent());
        System.out.println(file.length());
        System.out.println(file.lastModified());//最近一次修改的时间
    }
}
